/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			pgscript_internal.h
  \date			Aug 2011
  \author		TNick

  \brief		Contains definiions for the project

*//*

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read COPYING and README files in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
#ifndef __PGS_INTERNAL_INC__
#define __PGS_INTERNAL_INC__
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

#include	<QList>
#include	<QDebug>

#include	<module.h>

namespace	PgSave	{
class	IPgSave;
}

namespace	PgScr	{

class	DefVar;

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  DEFINITIONS    --------------------------------------------------------- */

#ifndef	TEST_OK
#define	TEST_OK		{Outcm = "Ok"; succeded++;}
#define	TEST_FAIL	{Outcm = "Fail"; }
#define	TEST_RESULT( test, message )		\
	if ( test )	TEST_OK	\
		else	TEST_FAIL	\
		qDebug() << QString( message )	\
				 << Outcm;	\
	performed++; b_ok = true;
#endif



#define	SESSION_NAME		"session_name"
#define	VAR_NAME			"var_name"
#define	DEF_MOD_GROUP		"def_module"
#define	MODULES_GROUP		"modules"
#define	CORE_M_GROUP		"core_modules"
#define	MOD_NAME_GROUP		"module_name"
#define	MOD_PVAR_GROUP		"predefined_var"
#define	MOD_UVAR_GROUP		"userdefined_var"

#define	SESSION_DEF_MODULE	"_"



#define	MAX_COMPONENTS_COUNT	100000



/*  DEFINITIONS    ========================================================= */
//
//
//
//
/*  DATA    ---------------------------------------------------------------- */





/**
*	@brief	list of interfaces for build in types
*/
extern		DefVar **		bldin_intf;



/*  DATA    ================================================================ */
//
//
//
//
/*  FUNCTIONS    ----------------------------------------------------------- */



/**
*	@brief	appends list of callbacks for build in types
*
*	PgSave::IPgSave derived classes use a system of callbacks for creating
*	and loading values. The library creates a map of callbacks when is
*	initialise() d and that is the map that gets appended to existing
*	map in PgSave::IPgSave.
*/
void			bInSaveKb				(
		PgSave::IPgSave& targ_i
		);


/*  FUNCTIONS    =========================================================== */
//
//
//
//

}	// namespace	PgScr

#endif // __PGS_INTERNAL_INC__
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
